home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / bchelp10.zip / TI725.ASC < prev    next >
Text File  |  1991-09-18  |  2KB  |  67 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.   PRODUCT  :  TLINK                                  NUMBER  :  725
  9.   VERSION  :  All
  10.        OS  :  DOS
  11.      DATE  :  September 18, 1991                       PAGE  :  1/1
  12.  
  13.     TITLE  :  Table Limit Exceeded
  14.  
  15.  
  16.  
  17.  
  18.   Occasionally TLINK will generate a "Table limit exceeded"
  19.   message.  This message is generally caused when an internal
  20.   linker table containing symbols overflows.  This table is
  21.   referred to as the symbol table.  The symbol table starts out at
  22.   80K bytes and grows dynamically up to a limit of 256K bytes.  The
  23.   reason for this limit is one of speed.
  24.  
  25.   There are several things that contribute to the symbol table
  26.   size--public names, external names, segment names, imported names
  27.   (Windows only) and group names.  Including debug information also
  28.   increases the table size by 4 bytes for each symbol in the table.
  29.   The usual major contributors to the filling of the symbol table
  30.   are the public and external names.
  31.  
  32.   There are several approaches to reducing the size of the symbol
  33.   table.  You can try any one or a combination of all of them.  How
  34.   many you need to implement is going to be dependent on the amount
  35.   of symbol space you require beyond 256K bytes.
  36.  
  37.   The different approaches are as follows:
  38.  
  39.      1.  Declare all functions and variables that are not used by
  40.          another module to have static duration.
  41.  
  42.      2.  Reduce the size of libraries used.  All symbols in all
  43.          modules in all libraries being linked are put into the
  44.          symbol table whether that module is used or not.  You can
  45.          significantly reduce the number of symbols in the symbol
  46.          table by removing any unused modules from your libraries.
  47.          This approach also applies to the default libraries.
  48.  
  49.      3.  A small decrease in the symbol space used can be gained by
  50.          shortening the names used since the variable name is part
  51.          of the symbol table entry.
  52.  
  53.      4.  You can store like types in arrays rather than declaring
  54.          individual names for each variable.  For instance,
  55.          declaring 5 integers will generate 5 corresponding symbol
  56.          table entries.  Declaring an integer array and storing
  57.          these 5 integers in the array will generate a single
  58.          symbol table entry for the array name rather than each
  59.          individual integer variable.
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.